package com.suntianci.stock.service;

import com.suntianci.stock.pojo.domain.PermissionDomain;
import com.suntianci.stock.pojo.domain.PermissionInfo4AddPermissionDomain;
import com.suntianci.stock.pojo.entity.SysPermission;
import com.suntianci.stock.vo.req.AddPermissionReqVo;
import com.suntianci.stock.vo.req.UpdatePermissionReqVo;
import com.suntianci.stock.vo.resp.R;

import java.util.List;

/**
 * @ClassName PermissionService
 * @Author 孙天赐
 * @Date 2025/1/11 16:18
 * @Description TODO: 权限服务接口
 */
public interface PermissionService {

    /**
     * 查询所有权限集合
     * @return
     */
    R<List<SysPermission>> getAllPermission();

    /**
     * 树状结构查询权限集合
     * @return
     */
    R<List<PermissionDomain>> getAllPermission2Tree();

    /**
     * 添加权限时回显权限树,仅仅显示目录和菜单
     * @return
     */
    R<List<PermissionInfo4AddPermissionDomain>> getAllPermissionWithLevel();

    /**
     * 添加权限
     * @param addPermissionReqVo
     * @return
     */
    R<Void> addPermission(AddPermissionReqVo addPermissionReqVo);

    /**
     *修改权限信息
     * @param updatePermissionReqVo
     * @return
     */
    R<Void> updatePermission(UpdatePermissionReqVo updatePermissionReqVo);

    /**
     * 根据权限id删除权限
     * @param permissionId
     * @return
     */
    R<Void> deletePermission(String permissionId);

}
